The disclosures herein relate generally to building computer systems and more particularly to the preparation of build-to-order computer systems.
A present trend among some computer manufacturers is to provide a customer with a custom-built, or xe2x80x9cbuild-to-order,xe2x80x9d computer system in which the customer has designated that certain components and capabilities are to be included in the system being ordered. It is therefore important to maximize efficiency at every step of the build-to-order process. That efficiency begins at the time the order is placed and processed, and continues throughout the assembly, testing, and shipment of the custom-built unit.
During production of built-to-order computer systems, specific components for a computer are pulled from stock and taken to an assembly pod where those specific components are assembled in the computer chassis. Following assembly, the chassis is moved to a quick-test area where tests are conducted to quickly determine whether the correct components for that order are installed, and whether the components are operative.
Following the quick test procedure, assembled chassis are moved to a burn rack where the parts are xe2x80x9cburned inxe2x80x9d and where operational errors may be detected. Many units are simultaneously tested on the burn racks and the tests may take a couple of hours to complete. With many units in production waiting to be tested, it is important that the burn rack spaces available for testing are used efficiently. Therefore, it is important that the computers or devices under test (xe2x80x9cDUTsxe2x80x9d) are tested in a manner that quickly and efficiently determines whether a DUT is satisfactorily operational and if not, that quickly and efficiently determines operational deficiencies so that the DUT may be removed from the burn rack to free up the occupied burn rack space for another DUT to be tested.
While the DUT is on the burn rack, the DUT also communicates with one or more predefined xe2x80x9clistener serversxe2x80x9d or xe2x80x9clistenersxe2x80x9d. A listener server is a listening process on a local area network (xe2x80x9cLANxe2x80x9d) that accepts network packets, usually containing status reports, from the DUTs, and stores data received from the DUTs in a centralized database. Because the listeners are predefined, i.e., they constitute a static list of servers on the LAN, if one of the listener servers goes down, a DUT that had been communicating therewith will look for another listener in sequence. If another listener is not available, the data from the DUT will not be recorded in the centralized database. Also, as the number of DUT""s increase, a listener may become overloaded, also causing data to not be recorded.
Therefore, what is needed is a listener architecture that prevents DUTs from having to go through a sequential list of listeners to find an available listener, but rather permits the DUT to communicate directly with the first available listener on the LAN, regardless of where in the sequential list the listener falls.
One embodiment, accordingly, is a dynamic listener server architecture in which a DUT broadcasts a network package onto the LAN and each of a set of listener servers connected to the LAN responds to the DUT broadcast with an individual packet containing its network address. The DUT receives these packets and uses the first one it receives as the primary listener server until a subsequent broadcast by the DUT when either the DUT is rebooted and assumes itself in an unknown LAN or when the connection to the selected listener server fails and it is now looking for another listener server on the same LAN. The first situation occurs when the DUT is being moved from one location (e.g., the burn rack) to another (e.g., an electrical and mechanical repair (xe2x80x9cEMRxe2x80x9d) station). The network address of the selected listener server is cached by the DUT and used in repeated sessions.
It will be recognized that as the number of communications, or DUT clients, being handled by a particular listener server increases, the time it will take that listener server to respond to a DUT broadcast will also increase. The dynamic nature of this behavior ensures that the first listener server to respond to the DUT broadcast has the resources to handle the new DUT.
A principal advantage of this embodiment is that it enables real time, fault-tolerant data collection from the manufacturing floor. In addition, data will automatically route to a new listener server if the current listener server is disconnected or goes down. Furthermore, data will automatically route to a new database if the current database is down.